package com.qzsoft.zhjd.materiel.modules.materieldatainput.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qzsoft.zhjd.materiel.modules.materieldata.dto.MaterielDataDisableDto;
import com.qzsoft.zhjd.materiel.modules.materieldata.dto.MaterielDataListDto;
import com.qzsoft.zhjd.materiel.modules.materieldata.entity.MaterielDataEntity;
import com.qzsoft.zhjd.materiel.modules.materieldatainput.dto.MaterielDataInputDto;

/**
 * @ClassName MaterielDataInputService
 * @Description 磅单补录业务接口
 * @author linhuawei
 * @since 2022-04-05
 */
public interface MaterielDataInputService {

    /**
     * @Title pageDto
     * @Description 获取补录磅单分页列表
     * @param params 查询条件
     * @return 补录磅单分页列表
     */
    public IPage<MaterielDataListDto> pageDto(Map<String, Object> params);

    /**
     * @Title getById
     * @Description 获取磅单数据
     * @param id 磅单主键
     * @return 磅单数据
     */
    public MaterielDataEntity getById(String id);

    /**
     * @Title save
     * @Description 磅单补录
     * @param entity 需要补录的磅单
     */
    public void save(MaterielDataEntity entity);

    /**
     * @Title updateById
     * @Description 修改补录磅单
     * @param entity 需要修改的磅单数据
     */
    public void updateById(MaterielDataEntity entity);

    /**
     * @Title disable
     * @Description 磅单废弃
     * @param dto 废弃信息
     */
    public void disable(MaterielDataDisableDto dto);

    /**
     * @Title template
     * @Description 下载模板
     * @param response
     */
    public void template(HttpServletResponse response);

    /**
     * @Title importExcel
     * @Description 数据导入
     * @param deviceCode 设备编号
     * @param file       导入文件
     * @return 导入结果
     */
    public List<MaterielDataInputDto> importExcel(String deviceCode, MultipartFile file);

    /**
     * @Title getLastYear
     * @Description 获取最新一条数据年份
     * @param params 查询条件
     * @return 最新一条数据年份
     */
    public String getLastYear(Map<String, Object> params);

}
